#ifndef MENU_H
#define MENU_H

#include "user_manager.h"
#include "toy_manager.h"
#include <iostream>
#include <string>
#include <limits>

class Menu {
public:
    static void showMainMenu();
    static void showUserMenu(UserManager& manager);
    static void handleAddUser(UserManager& manager);
    static void handleQueryUser(UserManager& manager);
    static void handleUpdateUser(UserManager& manager);
    static void handleDeleteUser(UserManager& manager);
    static void handleDisplayAllUsers(UserManager& manager);
    static int getValidIntegerInput(const std::string& prompt, int min = -1, int max = -1);
    static std::string getNonEmptyStringInput(const std::string& prompt);
    static void displayToyManagementMenu();
    static void handleToyManagementMenu(ToyManager& manager);
    static void addToy(ToyManager& manager);
    static void deleteToy(ToyManager& manager);
    static void modifyToy(ToyManager& manager);
    static void searchToy(ToyManager& manager);
    static void handleMainMenu(UserManager& userManager, ToyManager& toyManager);
};

#endif // MENU_H